import axios from 'axios'

const Myaxios = axios.create({
  // 基准路径
  baseURL: process.env.VUE_APP_API_URL, // 设置开发域名
  //  超时时间的设置 ms
  timeout: 5000,
  headers: {
    'Content-Type': 'application/json;charset=UTF-8'
  } // 携带过去的请求头
})
// 请求拦截器
Myaxios.interceptors.request.use(
  (config) => {
    // 每次发送请求之前判断vuex中是否存在token
    // 如果存在，则统一在http请求的header都加上token，这样后台根据token判断你的登录情况
    // 即使本地存在token，也有可能token是过期的，所以在响应拦截器中要对返回状态进行判断
    // const token = store.state.token
    // token && (config.headers.Authorization = token)
    return config
  },
  (error) => {
    return Promise.error(error)
  }
)

// http response 响应拦截器
Myaxios.interceptors.response.use(
  (response) => {
    // 拦截响应，做统一处理
    if (response.data.code) {
      switch (response.data.code) {
        case 1002:
          return
      }
    }
    return response
  },
  // 接口错误状态处理，也就是说无响应时的处理
  (error) => {
    return Promise.reject(error.response.status) // 返回接口返回的错误信息
  }
)

export default Myaxios
